import axios from "axios";

// 创建一个自己的axios实例，并且配置baseURL
let service = axios.create({
  baseURL: 'http://localhost:9999/api/'
})
// 每一个请求之前拦截请求
service.interceptors.request.use(
  // 拦截之后修改配置项，注意需要return config
  config => {
    // 如果token不为空
    if (localStorage.getItem('TOKEN') != null) {
      // 就自动在headers里添加token
      config.headers.TOKEN = localStorage.getItem('TOKEN');
    }
    // 设置状态码在200-500之间都为正常值
    config.validateStatus = val => val >= 200 && val <= 500;
    return config;
  }
)



export default service


export function request(config) {
  //1.创建axios的实例
  const instance = axios.create({
    baseURL: 'http://localhost:9999',// 公共接口
    timeout: 8000,// 超时时间 单位是ms，这里设置了8s的超时时间
  })

  //请求拦截器
  instance.interceptors.request.use(config => {
    config.data = JSON.stringify(config.data);//数据转化,也可以使用qs转换
    config.headers={
      'Content-Type':'application/x-www-form-urlencoded' //配置请求头
    }

    //console.log("请求成功")
    //请求放行
    return config;
  }, err => {
    console.log("请求失败")
  })

  //响应拦截
  instance.interceptors.request.use(config=>{
    //console.log("响应成功")
    //响应放行
    return config
  },err=>{
    console.log("响应失败")
  })

  //发送真正的网络请求
  return instance(config)
}
